Skip to content

Add support for Maryland (24), Indiana (25), Kentucky (26), Rhode Island (27)#104

Open
chuff wants to merge 1 commit into
IABTechLab:4.Xfrom
chuff:add-md-in-ky-ri-4x
Open

Add support for Maryland (24), Indiana (25), Kentucky (26), Rhode Island (27)#104
chuff wants to merge 1 commit into
IABTechLab:4.Xfrom
chuff:add-md-in-ky-ri-4x

Conversation

@chuff

@chuff chuff commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the four new MSPA state sections, implemented for the 4.X architecture (declarative FieldKey enums + Base64Segment) rather than ported from the segment-class style on master.

  • US-MD (Section 24) — Core + GPC subsection, via the existing AbstractUsSectionWithGpc.
  • US-IN (25), US-KY (26), US-RI (27) — Core + optional Sensitive Data Consents subsection. Adds AbstractUsSectionWithSensitiveDataConsent, a sibling of AbstractUsSectionWithGpc for that core+optional-segment pattern.

Each section uses the latest MSPA spec field layout (MspaVersion, MspaCoveredTransaction, MspaMode, … first; MD has no KnownChildSensitiveDataConsents/SensitiveDataProcessing; IN/KY/RI carry KnownChildSensitiveDataConsents in core and SensitiveDataProcessing as an N-Bitfield(2,8) in the second subsection). Sections are registered in GppModel.

This targets 4.X per discussion, superseding the master-based #103 for the 4.X line.

Output consistency

Verified identical to the master-based implementation: the per-section tests assert the same encoded strings produced there and round-trip them —

  • MD default BQAA.QA, all-set BVVU.YA
  • IN/KY/RI default BQAA.AAA, all-set BVVV.kkk

Test plan

  • mvn test — 368 tests, 0 failures
  • mvn spotless:check — clean
  • Per-section encode/decode, invalid-value validation, and optional-segment-excluded tests added

🤖 Generated with Claude Code

…and (27)

Re-implements the four new MSPA state sections for the 4.X architecture
(declarative FieldKey enums + Base64Segment), rather than porting the
segment-class-based master implementation.

- US-MD (24): Core + GPC subsection, via AbstractUsSectionWithGpc.
- US-IN (25), US-KY (26), US-RI (27): Core + optional "Sensitive Data
  Consents" subsection. Adds AbstractUsSectionWithSensitiveDataConsent,
  a sibling of AbstractUsSectionWithGpc for that pattern.

Each section follows the latest MSPA spec field layout (MspaVersion,
MspaCoveredTransaction, MspaMode, ... first). Registered in GppModel.

Output is identical to the master-based PR (IABTechLab#103): the per-section tests
assert the same encoded strings (MD BQAA.QA / BVVU.YA; IN/KY/RI
BQAA.AAA / BVVV.kkk) and round-trip them back.

mvn test: 368 tests, 0 failures; spotless:check clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant